perm filename BYTE.FAI[LCS,MUS] blob
sn#007345 filedate 1972-02-08 generic text, type T, neo UTF8
00100 ; ****** BYTE ******* GETS AND STORES 18-BIT NUMBERS.
00200 TITLE BYTE
00300 INTERNAL UNPACK,IPACK,GETFI2,FASTI2
00320
00500 ; CALL UNPACK(IBOT1(K),SR,SL)
00600 UNPACK: 0
00680 HRRE 1,@(16) ; GET RIGHT HALF
00690 FSC 1,233 ; FLOAT IT
00700 MOVEM 1,@1(16)
00720 HLRE 1,@(16) ; GET LEFT HALF
00725 FSC 1,233 ; FLOAT IT
00740 MOVEM 1,@2(16)
00760 JRA 16,3(16)
01400
01500 ;K=IPACK(NL,NR) REPACK TWO HALF WORDS.
01600 IPACK: 0
01700 HRL @(16)
01800 HRR @1(16)
01900 JRA 16,2(16)
01950
02000 ;******** NEXT READS MTA0 OR DSK AND WRITES AAAAA.DMD ON DSK:
02100 INTERNAL MTA1,MTA0,TOTAPE,INMTA1,FSTMUS,PUTMUS,FINMUS
02150 ; MTA0,TOTAPE AND PUTMUS,FSTMUS USE CH2 AND END WITH FINMUS.
02175 ; MTA1,INMTA1 USE CH3. GETFI2,FASTI2 USE CH.
02200
02300 CH←12
02400 CH2←11
02450 CH3←13
02500 BLKS←=1
02600 REGS: BLOCK 20
02602
02605 ;CALL GETFIL(<FILE>)
02611
02617 GETFI2: 0
02623 MOVE 0,@0(16)
02629 MOVEM 0,FILNAM
02635 JSA 16,INTFI2
02641 MOVE 0,[SIXBIT/DMD/]
02647 MOVEM 0,DIR+1
02653 JSA 16,LKUP
02659 SKIPA
02665 JRST GETF3
02671 SETZM DIR+1
02677 JSA 16,LKUP
02683 0
02689 GETF3: JRA 16,1(16)
02690
02700 ;CALL PUTMUS(<FILE>)
02800
02900 PUTMUS: 0 ;USES FSTMUS,FINMUS, CH2. WRITES ON 2314.
03000 MOVE 0,@0(16)
03100 MOVEM 0,FILNAM
03200 JSA 16,INTFIL
03300 MOVE 0,[SIXBIT/DMD/]
03400 MOVEM 0,DIR+1
03500 SETZM DIR+2
03600 SETZM DIR+3
03700 ENTER CH2,DIR
03800 0
03900 JRA 16,1(16)
04100
04200 ;CALL FSTMUS(<ARRAY>,<NO. OF WORDS>)
04300
04400 FSTMUS: 0
04500 HRRZ 0,0(16)
04600 SUBI 0,1
04700 MOVEM 0,COM
04800 MOVN 0,@1(16)
04900 HRLM 0,COM
05000 OUTPUT CH2,COM
05100 STATZ CH2,740000
05200 0
05300 JRA 16,2(16)
05400
05405 INTFI2: 0
05410 MOVEI REGS
05415 BLT REGS+3
05420 INIT CH,17
05421 SIXBIT/DSK/
05422 0
05423 0
05425 JRST DSKX
05430
05435 LKUP: 0
05437 SETZM DIR+2
05439 SETZM DIR+3
05441 LOOKUP CH,DIR
05443 JRA 16,0(16)
05445 JRA 16,1(16)
05447
05449 DIR: BLOCK 4
05451
05455 ;CALL FASTI2(<ARRAY>,<NO. WORDS>)
05457
05459 FASTI2: 0
05461 HRRZ 0,0(16)
05463 SUBI 0,1
05465 MOVEM 0,COM
05467 MOVN 0,@1(16)
05469 HRLM 0,COM
05471 INPUT CH,COM
05473 STATZ CH,740000
05475 0
05477 JRA 16,2(16)
05479
05500 INTFIL: 0 ;INITS DSK
05600 MOVEI REGS
05700 BLT REGS+3
05800 INIT CH2,17
05900 SIXBIT/DSK/
06000 0
06100 0
06200 DSKX: MOVE 0,FILNAM#
06300 MOVEM 0,FN#
06400 MOVE 1,[POINT 7,FN]
06500 INTF3: MOVE 2,[POINT 6,DIR]
06600 SETZM DIR
06700 MOVEI 3,5
06800 INTF1: ILDB 0,1
06900 CAIN 0," "
07000 JRST INTF2
07100 SUBI 0,40
07200 IDPB 0,2
07300 SOJG 3,INTF1
07400 INTF2: HRLZI REGS
07500 BLT 3
07600 JRA 16,0(16)
07700 ;CALL MTA1
07800
07900 MTA1: 0 ;USES INTAP OR TOTAPE, CH3. READS OR WRITES MTA1.
08000 INIT CH3,617
08100 SIXBIT/MTA1/
08200 0
08300 HALT
08400 JRA 16,0(16)
08500
08600 ;CALL INTAPE(<ARRAY>,<NO.OF WORDS>) READS MAGTAPE 1
08700
08800 INMTA1: 0
08900 HRRZ 0,0(16)
09000 SUBI 0,1
09100 MOVEM 0,COM
09200 MOVN 0,@1(16)
09300 HRLM 0,COM
09400 INPUT CH3,COM
09500 STATZ CH3,740000
09600 0
09700 JRA 16,2(16)
09710
09714 TOTAPE: 0
09718 HRRZ 0,0(16)
09722 SUBI 0,1
09726 MOVEM 0,COM
09730 MOVN 0,@1(16)
09734 HRLM 0,COM
09738 OUTPUT CH2,COM
09742 STATZ CH2,740000
09746 0
09750 JRA 16,2(16)
09754
09758 ;CALL MTA0
09762
09766 MTA0: 0 ;USES INTAP OR TOTAPE, CH. READS OR WRITES MTA0.
09770 INIT CH2,617
09774 SIXBIT/MTA0/
09778 0
09782 HALT
09786 JRA 16,0(16)
09790
09800
09900 COM: OCT 0,0
10000 COM1: 0
10100 BLKNUM: 0
10200
10300 ;CALL FINMUS
10400 FINMUS: 0
10500 CLOSE CH2,0
10600 STATZ CH2,740000
10700 0
10800 RELEASE CH2,0
10900 JRA 16,0(16)
11000
11100 END